/************************************************



*************************************************/

#ifndef __STAFFING_SYS_H__
#define __STAFFING_SYS_H__

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <time.h>
#include <sqlite3.h>
#include <time.h>

#define err_log(errlog) do{printf("%s:%s,%d\n",__FILE__,__func__,__LINE__);\
							perror(errlog);exit(1);}while(0)
								
#define DATABASE "staffing_sys.db"

//user type
#define          ROOT                 0
#define          ADMIN                1
#define          NORMAL               3

//cmd 
//[31:29] 操作码
//[28:25] 一级操作参数
//[24:21] 二级操作参数
//以此类推 
#define          DO_LOGIN             0x10000000  
#define          DO_EXIT              0x20000000
#define          DO_ADDADMIN          0x30000000
#define          DO_ADDUSER           0x40000000
#define          DO_DELETE            0x50000000
#define          DO_QUERY             0x60000000
#define          DO_UPDATE            0x70000000  

#define          DO_FAILED            1
#define          DO_EXIST             2
#define          DO_ABORD             3

#define N 32
//用户验证信息
typedef struct 
{
	int   type; //权限标志位
	char  name[N];  // 姓名
	char  password[N]; // 密码
}USER;

//用户个人信息
typedef struct
{
	char name[N];	//姓名
	char addr[N]; // 地址
	char age; // 年龄
	int level; // 等级
	int no; //编号
	char phone[N]; // 电话
	double salary ; // 工资
}INFO;

//通信消息结构体
typedef struct msg{
	unsigned int  cmd;
	USER user;
	INFO info;
}transmsg;

#endif
